package com.itheima.wemedia.service;

import com.itheima.common.vo.PageResultVo;
import com.itheima.wemedia.dto.WmNewsDtoSave;
import com.itheima.wemedia.dto.WmNewsPageReqDto;
import com.itheima.wemedia.pojo.WmNews;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.wemedia.vo.WmNewsVo;

import java.util.List;
import java.util.Map;

/**
 * @description <p>自媒体图文内容信息 业务接口</p>
 *
 * @version 1.0
 * @package com.itheima.wemedia.service
 */
public interface WmNewsService extends IService<WmNews> {

    /**
     * 1.文章分页查询
     * @param dto
     * @return
     */
    PageResultVo<WmNews> findPage(WmNewsPageReqDto dto);

    /**
     * 2.发表文章
     * @param draft
     * @param dtoSave
     * @return
     */
    Long submit(boolean draft, WmNewsDtoSave dtoSave);


    /**
     * 3.通过id删除文章
     * 条件：文章不为发布状态或不为上架状态
     * @param newsId
     */
    void deleteById(Long newsId);

    /**
     * 4.文章上架与下架处理
     * @param paramMap
     */
    void downOrUp(Map<String, Object> paramMap);

    /**
     * 5.给后台管理用的文章分页查询
     * @param dto
     * @return
     */
    PageResultVo<WmNewsVo> findPage4Admin(WmNewsPageReqDto dto);

    /**
     * 6.人工审核-驳回
     * @param paramMap
     */
    void authFail(Map<String, Object> paramMap);


    /**
     * 7.人工审核-通过
     * @param paramMap
     */
    void authPass(Map<String, Long> paramMap);

    /**
     * 8.人工审核-查看文章详情
     * @param newsId
     * @return
     */
    WmNewsVo getWmNewsVo(Long newsId);

    /**
     * 9.查询需要同步的文章status=8
     * @param dto
     * @return
     */
    List<WmNewsVo> list4ArticleSync(WmNewsPageReqDto dto);
}
